From: Jim Blandy Date: Fri, 18 Jun 1993 23:33:20 +0000 (+0000) Subject: Changes for Irix 4.0, tested this time: X-Git-Tag: archive/raspbian/1%29.2+1-2+rpi1^2~5^2~95234 X-Git-Url: https://dgit.raspbian.org/%22http:/www.example.com/cgi/%22https:/www.github.com/%22bookmarks:///%22http:/www.example.com/cgi/%22https:/www.github.com/%22bookmarks:/?a=commitdiff_plain;h=5a570e3721ec904cb24436f5fe1e92ec08913e0d;p=emacs.git Changes for Irix 4.0, tested this time: * s/irix4-0.h: Get rid of our fake definitions for setpgrp and getpgrp. * callproc.c (Fcall_process): Go ahead and use the USG calling convention for setpgrp. * ymakefile (pre-crt0.o): Add rule for this. Perhaps it will help separate-source-directory compilation. * emacs.c (shut_down_emacs): Some USG systems #define EMACS_HAVE_TTY_PGRP; call getpgrp as appropriate for such systems. * sysdep.c (sys_suspend): Call getpgrp as appropriate for USG and non-USG. * process.c [IRIX] (create_process): Don't put child in process group zero before opening the tty; Irix is like USG in this regard. --- diff --git a/src/callproc.c b/src/callproc.c index 1436a231d72..28e6c00377c 100644 --- a/src/callproc.c +++ b/src/callproc.c @@ -255,7 +255,7 @@ If you quit, the process is killed with SIGINT, or SIGKILL if you quit again.") { if (fd[0] >= 0) close (fd[0]); -#if defined (USG) && !defined (IRIX) +#ifdef USG setpgrp (); #else setpgrp (pid, pid); diff --git a/src/emacs.c b/src/emacs.c index c38811f117d..96040e17a86 100644 --- a/src/emacs.c +++ b/src/emacs.c @@ -681,9 +681,14 @@ shut_down_emacs (sig, no_x, stuff) /* If we are controlling the terminal, reset terminal modes */ #ifdef EMACS_HAVE_TTY_PGRP { +#ifdef USG + int pgrp = getpgrp (); +#else + int pgrp = getpgrp (0); +#endif int tpgrp; if (EMACS_GET_TTY_PGRP (0, &tpgrp) != -1 - && tpgrp == getpgrp (0)) + && tpgrp == pgrp) { fflush (stdout); reset_sys_modes (); diff --git a/src/process.c b/src/process.c index 87697342b11..4c2fa5d7c00 100644 --- a/src/process.c +++ b/src/process.c @@ -1282,7 +1282,7 @@ create_process (process, new_argv, current_dir) int j = open ("/dev/tty", O_RDWR, 0); ioctl (j, TIOCNOTTY, 0); close (j); -#if !defined (USG) || defined (IRIX) +#ifndef USG /* In order to get a controlling terminal on some versions of BSD, it is necessary to put the process in pgrp 0 before it opens the terminal. */ diff --git a/src/s/irix4-0.h b/src/s/irix4-0.h index e2dbb37c37c..589773a8213 100644 --- a/src/s/irix4-0.h +++ b/src/s/irix4-0.h @@ -50,10 +50,6 @@ strcpy (pty_name, name); \ } -/* Use the BSD versions of the getpgrp and setpgrp functions. */ -#define setpgrp(pid, pgrp) BSDsetpgrp((pid), (pgrp)) -#define getpgrp(pid) BSDgetpgrp(pid) - /* jpff@maths.bath.ac.uk reports `struct exception' is not defined on this system, so inhibit use of matherr. */ #define NO_MATHERR diff --git a/src/sysdep.c b/src/sysdep.c index 5d0d4802a0f..8e7858f23d4 100644 --- a/src/sysdep.c +++ b/src/sysdep.c @@ -571,7 +571,14 @@ sys_suspend () #else #ifdef SIGTSTP - EMACS_KILLPG (getpgrp (0), SIGTSTP); + { +#ifdef USG + int pgrp = getpgrp (); +#else + int pgrp = getpgrp (0); +#endif + EMACS_KILLPG (pgrp, SIGTSTP); + } #else /* No SIGTSTP */ #ifdef USG_JOBCTRL /* If you don't know what this is don't mess with it */